<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/templates/masterLayout.xhtml">

	<ui:define name="title">NUEVA FACTURA RAPIDA</ui:define>
	<ui:define name="content">

		<p:growl id="mensaje" showDetail="true" life="7000" />

		<p:panel id="panel" header="NUEVA FACTURA RAPIDA"
			style="margin-bottom:10px;height:auto;">

			<h:form id="formTotales" style="height: 0px;">
				<h:panelGrid columns="2" cellpadding="0" styleClass="totales"
					style="float: right;">

					<h:outputText styleClass="letrasGrandes" value="SUB-TOTAL 12%:"
						style="padding-left: 4px;" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.subTotalIva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 5px;"
						value="SUB-TOTAL 0%:" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.subTotalNoIva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 4px;"
						value="DESCUENTO:" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.descuento}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 4px;"
						value="SUBTOTAL:" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.subTotal}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 3px;"
						value="BASE RETENCION:" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.baseRetencion}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" value="IVA 12%:"
						style="padding-left: 8px;" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.iva}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />

					<h:outputText styleClass="letrasGrandes" style="padding-left: 8px;"
						value="TOTAL:" />
					<p:inputText readonly="true"
						value="#{facturaRapidaBean.cantidadFacturaPresentar.total}"
						styleClass="colorLetras txtFactura"
						style="font-size: 14px !important;	font-weight: bold;" />
				</h:panelGrid>
			</h:form>

			<h:form id="formCliente">
				<h:panelGrid columns="3" cellpadding="1"
					rowClasses="centrar,centrar1,centrar2,centrar3,centrar4,centrar5">
					<h:outputText value="FACTURA Nº:" styleClass="negrita" />
					<p:inputText value="#{facturaRapidaBean.egreso.codigodocumento}"
						styleClass="txtFormNuevo" />
					<p:outputLabel value="" />

					<p:outputLabel value="CEDULA/NOMBRE:" styleClass="negrita" />
					<p:inputText readonly="true" style="width:150% !important"
						value="#{facturaRapidaBean.cliente.cedula} - #{facturaRapidaBean.cliente.apellido} #{facturaRapidaBean.cliente.nombre}" />
					<p:commandButton oncomplete="PF('buscarCliente').show()"
						icon="ui-icon-search" style="left: 140%;" />

					<p:outputLabel value="LOCAL:" styleClass="negrita" />
					<p:selectOneMenu id="comboLocal"
						value="#{facturaRapidaBean.egreso.local.localid}"
						styleClass="comboCedula" filter="true" filterMatchMode="contains"
						required="true" requiredMessage="ESCOJA UN LOCAL">
						<f:selectItem itemLabel="ESCOJA UN LOCAL" />
						<f:selectItems value="#{facturaRapidaBean.listaLocales}"
							var="local" itemValue="#{local.localid}"
							itemLabel="#{local.nombre}" />
						<p:ajax update=":mensaje, :formCliente" event="change"
							listener="#{facturaRapidaBean.obtenerBodega}" />
					</p:selectOneMenu>
					<p:outputLabel value="" />

					<h:outputText value="VENDEDOR:" styleClass="negrita" />
					<p:selectOneMenu
						value="#{facturaRapidaBean.vendedor.empleadocargoid}"
						filter="true" filterMatchMode="contains">
						<f:selectItem itemLabel="ESCOJA UN VENDEDOR" />
						<f:selectItems value="#{facturaRapidaBean.listaVendedores}"
							var="vendedor" itemValue="#{vendedor.id}"
							itemLabel="#{vendedor.cedula} - #{vendedor.apellido} #{vendedor.nombre}" />
					</p:selectOneMenu>
					<p:outputLabel value="" />

					<p:outputLabel value="GUIA DE REMISION" styleClass="negrita" />
					<p:selectBooleanButton value="#{facturaRapidaBean.guia}"
						onLabel="SI" offLabel="NO" onIcon="ui-icon-check"
						offIcon="ui-icon-close">
						<p:ajax update=":mensaje,:formCliente"
							listener="#{facturaRapidaBean.comprobarGuiaRemision}" />
					</p:selectBooleanButton>
					<p:outputLabel value="" />

					<h:outputText value="CI/RUC TRANSPORTISTA:" styleClass="negrita"
						rendered="#{facturaRapidaBean.guia}" />
					<p:selectOneMenu rendered="#{facturaRapidaBean.guia}"
						value="#{facturaRapidaBean.transportista.empleadocargoid}"
						filter="true" filterMatchMode="contains">
						<f:selectItem itemLabel="ESCOJA UN TRANSPORTISTA" />
						<f:selectItems value="#{facturaRapidaBean.listaTransportistas}"
							var="transportista" itemValue="#{transportista.id}"
							itemLabel="#{transportista.cedula} - #{transportista.apellido} #{transportista.nombre}" />
					</p:selectOneMenu>
					<p:outputLabel rendered="#{facturaRapidaBean.guia}" value="" />

					<h:outputText value="PLACA:" styleClass="negrita"
						rendered="#{facturaRapidaBean.guia}" />
					<p:inputText value="#{facturaRapidaBean.guiaRemision.placa}"
						rendered="#{facturaRapidaBean.guia}" styleClass="txtFormNuevo" />
					<p:outputLabel value="" rendered="#{facturaRapidaBean.guia}" />

					<h:outputText value="MOTIVO TRASLADO:" styleClass="negrita"
						rendered="#{facturaRapidaBean.guia}" />
					<p:selectOneMenu rendered="#{facturaRapidaBean.guia}"
						value="#{facturaRapidaBean.guiaRemision.motivotraslado.motivotrasladoid}"
						filter="true" filterMatchMode="contains">
						<f:selectItem itemLabel="ESCOJA UN MOTIVO" />
						<f:selectItems value="#{facturaRapidaBean.listaMotivotraslados}"
							var="motivo" itemValue="#{motivo.motivotrasladoid}"
							itemLabel="#{motivo.nombre}" />
					</p:selectOneMenu>
					<p:outputLabel value="" rendered="#{facturaRapidaBean.guia}" />

					<p:commandButton value="GUARDAR"
						update=":formCliente, formCliente, :formDataTable,  :formTotales, :mensaje"
						id="btnGuardar" icon="ui-icon-bookmark"
						oncomplete="comprobarCabecera(xhr, status, args)"
						disabled="#{!facturaRapidaBean.bn}"
						actionListener="#{facturaRapidaBean.insertar}" />

					<p:commandButton value="PAGAR"
						update=":formCliente, formCliente, :formDataTable,  :formTotales, :mensaje"
						oncomplete="comprobarFactura(xhr, status, args);" id="btnPagar"
						disabled="#{!facturaRapidaBean.bn}" icon="ui-icon-bookmark"
						actionListener="#{facturaRapidaBean.comprobarCabecera}" />

					<p:commandButton value="NUEVO" id="btnlimpiar"
						update=":formCliente, formCliente, :formDataTable, :formTotales"
						icon="ui-icon-bookmark"
						actionListener="#{facturaRapidaBean.cancelarTodo}" process="@this" />
				</h:panelGrid>
			</h:form>

			<p:dialog header="BUSCAR CLIENTE" widgetVar="buscarCliente"
				resizable="false" modal="fasle" showEffect="clip" hideEffect="fold"
				id="dialogoCliente" width="50%">

				<h:form>
					<p:outputLabel value="CEDULA/RUC/NOMBRE/APELLIDO:"
						styleClass="negrita" />
					<p:inputText id="comboCedula" value="#{clienteBean.nombreCliente}"
						onblur="this.value=this.value.toUpperCase();" required="true" />

					<p:commandButton update=":formNuevoCliente:tablaClientes"
						icon="#{msg['iconoBuscar']}"
						actionListener="#{clienteBean.obtenerCliente}" />

					<p:commandButton oncomplete="PF('personaDialogoNuevo').show()"
						icon="ui-icon-document" update=":formNuevoPersona"
						actionListener="#{clienteBean.limpiarObjetos}" />
				</h:form>

				<h:form id="formNuevoCliente">
					<p:dataTable id="tablaClientes" var="cliente"
						value="#{clienteBean.listClientes}" paginator="true" rows="10"
						emptyMessage="#{msg['lbl.mensajeTabla']}"
						paginatorPosition="bottom" rowKey="#{cliente.personaid}"
						selection="#{facturaRapidaBean.cliente}" selectionMode="single">

						<p:ajax event="rowSelect" update=":formCliente"
							listener="#{facturaRapidaBean.cargarCliente}"
							oncomplete="PF('buscarCliente').hide()" />

						<p:column headerText="CEDULA" width="20%"
							style="text-align:center;">
							 	#{cliente.cedula}
						</p:column>

						<p:column headerText="APELLIDO" style="text-align:center;">
							 	#{cliente.apellido}
						</p:column>

						<p:column headerText="NOMBRE" style="text-align:center;">
							 	#{cliente.nombre}
						</p:column>

					</p:dataTable>
				</h:form>

			</p:dialog>

			<h:form id="formDataTable">

				<p:dataTable id="tablaDetalleEgresos" var="facturaReporte"
					style="width: 100% !important;"
					value="#{facturaRapidaBean.facturaReportes}" paginator="true"
					rows="10" emptyMessage="#{msg['lbl.mensajeTabla']}"
					paginatorPosition="bottom" editable="true" editMode="cell"
					scrollable="true" styleClass="ui-datatable-scrollable-body">

					<p:ajax event="cellEdit"
						listener="#{facturaRapidaBean.obtenerFila}" update=":mensaje" />

					<p:column headerText="GESTIONAR"
						style="text-align:center;width: 5%;">

						<p:commandButton id="btnEliminar" update=":formEliminar"
							oncomplete="PF('detalleEgresoDialogoEliminar').show()"
							icon="#{msg['iconoEliminar']}"
							disabled="#{!facturaReporte.eliminar}">
							<f:setPropertyActionListener value="#{facturaReporte}"
								target="#{facturaRapidaBean.facturaReporte}" />
						</p:commandButton>

					</p:column>

					<p:column headerText="IVA" style="text-align:center;width: 1px;">  
            				#{facturaReporte.iva}
        				</p:column>

					<p:column headerText="CODIGO"
						style="text-align:center;width: 50px;">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{facturaReporte.codigo}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{facturaReporte.codigo}">
									<p:ajax event="change"
										listener="#{facturaRapidaBean.cargarProducto}"
										update=":formDataTable ,:mensaje" />
								</p:inputText>
							</f:facet>
						</p:cellEditor>

					</p:column>

					<p:column headerText="DESCRIPCION" width="20%"
						filterBy="#{facturaReporte.descripcion}"
						style="text-align:center;padding-left: 0px;">
						<p:inputText style="width:100%;" id="nombre"
							value="#{facturaReporte.descripcion}" readonly="true" />
						<p:tooltip for="nombre" value="#{facturaReporte.descripcion}" />
					</p:column>

					<p:column headerText="CANTIDAD"
						style="text-align:center;width: 50px;">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{facturaReporte.cantidad} " />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{facturaRapidaBean.cantidad}">
									<p:ajax event="change" listener="#{facturaRapidaBean.cantidad}"
										update=":formDataTable ,:mensaje, :formTotales" />
								</p:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="P. UNIT."
						style="text-align:center;width: 50px;">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{facturaReporte.precioUnitVenta}" />
							</f:facet>
							<f:facet name="input">
								<p:inputText value="#{facturaRapidaBean.nuevoPrecio}">
									<p:ajax event="change"
										listener="#{facturaRapidaBean.cambiarPrecio}"
										update=":formDataTable ,:mensaje, :formTotales" />
								</p:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>

					<p:column headerText="DESC" style="text-align:center;width: 50px;">  
            				#{facturaReporte.precioUnitDescuento}  
        				</p:column>

					<p:column headerText="IMPORTE"
						style="text-align:center;width: 50px;">  
            				#{facturaReporte.importe}  
        				</p:column>

				</p:dataTable>
			</h:form>

			<p:dialog widgetVar="detalleEgresoDialogoEliminar" severity="alert"
				header="SACAR PRODUCTO DE LA LISTA" showEffect="explode"
				hideEffect="explode" modal="false" resizable="false" width="300px"
				style="text-align: center;">
				<h:form id="formEliminar">
					<br />
					<p:outputLabel value="¿ ESTA SEGURO DE SACAR ESTE PRODUCTO ?" />
					<br />
					<br />
					<p:commandButton value="ACEPTAR"
						update=":formDataTable,:mensaje, :formTotales"
						icon="ui-icon-check"
						oncomplete="PF('detalleEgresoDialogoEliminar').hide()"
						actionListener="#{facturaRapidaBean.eliminarDetalle}" />
					<p:commandButton value="CANCELAR" type="button"
						onclick="PF('detalleEgresoDialogoEliminar').hide()"
						icon="ui-icon-close" />
				</h:form>
			</p:dialog>

			<p:dialog header="IMPRIMIR" widgetVar="imprimir" resizable="false"
				modal="false" showEffect="clip" hideEffect="fold"
				id="dialogoImprimir">
				<h:form target="_blank">
					<p:commandButton value="SI"
						actionListener="#{facturaRapidaBean.imprimirFactura}" ajax="false"
						oncomplete="PF('imprimir').hide()" icon="ui-icon-extlink" />

					<p:commandButton value="NO" oncomplete="PF('imprimir').hide()"
						actionListener="#{facturaRapidaBean.cancelarTodo}"
						icon="ui-icon-extlink" />
				</h:form>
			</p:dialog>

			<p:dialog header="INSERTAR CLIENTE" widgetVar="personaDialogoNuevo"
				resizable="false" modal="fasle" showEffect="clip" hideEffect="fold"
				id="dialogoNuevoPersona">

				<h:form id="formNuevoPersona">
					<p:focus context="formNuevoPersona" />
					<h:outputText value="LOS CAMPOS MARCADOS CON" />
					<h:outputText value=" * " class="asterisco" />
					<h:outputText value="SON REQUERIDOS" />

					<h:panelGrid columns="2" cellpadding="1">

						<h:panelGrid id="panelNuevo" columns="3" cellpadding="1">

							<h:outputText value="" />
							<h:outputText value="DATOS/PERSONALES" style="font-weight:bold" />
							<h:outputText value="" />

							<h:outputText value="*" class="asterisco" />
							<h:outputText value="CEDULA:" />
							<p:inputText value="#{clienteBean.persona.cedula}"
								styleClass="txtFormNuevo"
								onblur="this.value=this.value.toUpperCase();" required="true"
								requiredMessage="SE NECESITA UNA CÉDULA"
								validatorMessage="SE REQUIERE 10 DIGITOS NUMERICOS">
								<f:validateRegex pattern="[0-9]+" />
								<f:validateLength minimum="10" maximum="10" />
								<p:ajax event="change"
									listener="#{clienteBean.comprobarPersona}"
									update="formNuevoPersona, :mensaje" />
							</p:inputText>

							<h:outputText value="*" class="asterisco" />
							<h:outputText value="APELLIDOS:" />
							<p:inputText id="apellidos"
								value="#{clienteBean.persona.apellido}"
								styleClass="txtFormNuevo"
								onblur="this.value=this.value.toUpperCase();concatenar()"
								required="true" requiredMessage="INGRESE LOS APELLIDOS" />

							<h:outputText value="*" class="asterisco" />
							<h:outputText value="NOMBRES:" />
							<p:inputText id="nombres" value="#{clienteBean.persona.nombre}"
								styleClass="txtFormNuevo"
								onblur="this.value=this.value.toUpperCase();concatenar()"
								required="true" requiredMessage="INGRESE LOS NOMBRES" />

							<h:outputText value="*" class="asterisco" />
							<h:outputText value="NOMBRE COMERCIAL:" />
							<p:inputText id="nombreComercial"
								value="#{clienteBean.cliente.nombrecomercial}"
								styleClass="txtFormNuevo"
								onblur="this.value=this.value.toUpperCase();" required="true"
								requiredMessage="INGRESE EL NOMBRE COMERCIAL" />

							<h:outputText value="" />
							<h:outputText value="DATOS/RESIDENCIA" style="font-weight:bold" />
							<h:outputText value="" />

							<h:outputText value="*" class="asterisco" />
							<h:outputText value="DIRECCION:" />
							<p:inputTextarea value="#{clienteBean.persona.direccion}"
								styleClass="txtFormNuevo"
								onblur="this.value=this.value.toUpperCase();" required="true"
								requiredMessage="INGRESE UNA DIRECCION" />

						</h:panelGrid>

						<f:facet name="footer">
							<p:separator />
							<p:commandButton value="#{msg['btn.guardar']}"
								update=":mensaje, formNuevoPersona"
								oncomplete="comprobar(xhr, status, args)" id="btnNuevoAceptar"
								icon="#{msg['iconoGuardar']}"
								actionListener="#{clienteBean.insertarRapido}"
								styleClass="centrarBotonesDialogos" />

							<p:commandButton value="#{msg['btn.cancelar']}"
								oncomplete="PF('personaDialogoNuevo').hide()"
								id="btnNuevolimpiar" icon="#{msg['iconoCancelar']}"
								actionListener="#{clienteBean.limpiarObjetos}" process="@this"
								styleClass="centrarBotonesDialogos" />
						</f:facet>
					</h:panelGrid>
				</h:form>
			</p:dialog>
		</p:panel>

		<script type="text/javascript">
			//<![CDATA[
			function comprobar(xhr, status, args) {
				if (!args.validationFailed && args.cerrar) {
					PF('personaDialogoNuevo').hide();
				}
			}

			function comprobarFactura(xhr, status, args) {
				if (!args.error) {
				}
			}
			function comprobarCabecera(xhr, status, args) {
				if (args.error) {
					PF('imprimir').show();
				}
			}
			//]]>

			function handleSubmitRequest(args) {
				if (!args.validationFailed) {
					PF('productoDialogoNuevo').hide();
				}
			}
		</script>

	</ui:define>

</ui:composition>
</html>